home *** CD-ROM | disk | FTP | other *** search
/ The Best of MacTutor - S…e Code for Volumes 1 to 5 / The Best of MacTutor - Source Code for Volume 1-5 (Wayzata Technology)(6031)(1990).bin / Source Code / #51 (Dec 89) / AACK Folder / lowlevelatprocs.p < prev    next >
Text File  |  1989-03-30  |  2KB  |  90 lines

  1. unit LowLevelATProcs;
  2.  
  3.  
  4. interface
  5.  
  6.  
  7.     uses
  8.         AppleTalk, Globals;
  9.  
  10.  
  11.     procedure XCompletionRoutine;
  12.     function NTTExists (ntt2Confirm: EntityName; var theAddress: AddrBlock): OSErr;
  13.  
  14.     procedure DrawConfirmString;
  15.     procedure DrawLookUpString;
  16.  
  17.  
  18. implementation
  19.  
  20.  
  21.     procedure InlineRoutine;
  22.     inline
  23.         $213C, $FFFF, $FFFF; { MOVEA.L #-1,-(A0) set CallDone field}
  24.  
  25.  
  26.     procedure XCompletionRoutine;
  27.     {When routine is called A0 = ptr to ParamBlock}
  28.     begin
  29.         InlineRoutine;
  30.     end;
  31.  
  32.  
  33.     function NTTExists (ntt2Confirm: EntityName; var theAddress: AddrBlock): OSErr;
  34.     {This function test whether or not an NTT exists at a certain address and}
  35.     { returns its new address if it 'moved'}
  36.         var
  37.             err: OSErr;
  38.             localMPPPb: MPPParamBlock;
  39.     begin
  40.         with localMPPPb do
  41.             begin
  42.                 ioCompletion := nil;
  43. {$IFC TALK_DEBUG }
  44.                 interval := 6;
  45.                 count := 2;
  46. {$ELSC}
  47.                 interval := 10;
  48.                 count := 10;
  49. {$ENDC}
  50.                 entityPtr := @ntt2Confirm; {NTT to confirm}
  51.                 confirmAddr := theAddress; {address to confirm}
  52.  
  53.                 err := PConfirmName(@localMPPPb, SYNC);
  54.                 NTTExists := err;
  55.                 if err = nbpConfDiff then
  56.         {If the NTT 'moved' then return its new address}
  57.                     theAddress.aSocket := newSocket;
  58.             end;
  59.     end;
  60.  
  61.  
  62.     procedure DrawConfirmString;
  63.     {This proc draws the result of the last ConfirmName call}
  64.     {It assumes that the current port is the user window}
  65.     begin
  66.         with ConfirmStringPos do
  67.             begin
  68.                 EraseRect(ConfirmStringRect);
  69.                 MoveTo(h, v);
  70.                 DrawString('Confirm Status = ');
  71.                 DrawString(ConfirmString);
  72.             end;
  73.     end;
  74.  
  75.  
  76.     procedure DrawLookUpString;
  77.     {This proc draws the result of the last LookUpName call}
  78.     {It assumes that the current port is the user window}
  79.     begin
  80.         with LookUpStringPos do
  81.             begin
  82.                 EraseRect(LookUpStringRect);
  83.                 MoveTo(h, v);
  84.                 DrawString('LookUp Status = ');
  85.                 DrawString(LookUpString);
  86.             end;
  87.     end;
  88.  
  89.  
  90. end.